generate-emacs-builtin-package-info.el: Style tweaks
authorSean Whitton <spwhitton@spwhitton.name>
Fri, 25 Jul 2025 08:14:34 +0000 (09:14 +0100)
committerSean Whitton <spwhitton@spwhitton.name>
Fri, 25 Jul 2025 08:14:34 +0000 (09:14 +0100)
debian/generate-emacs-builtin-package-info.el

index 8292df5dccf37be8fe967f6036e061124c0017c4..7eaf38e6f3e3191efe77a7fa67bcd4bb23a523c8 100644 (file)
@@ -8,47 +8,48 @@
 
 (defun package-version-list-to-string (package-version-list)
   "Convert a package version list to version string acceptable in Debian."
-  (when package-version-list
+  (and package-version-list
     (let ((count 0)
           version-list)
       (dolist (item package-version-list)
-        (progn
-          (if (< item 0)
-              (progn
-                ;; This roughly matches the mapping in
-                ;; version-regexp-alist.
-                (cl-case item
-                  (-1 (push "~rc" version-list))
-                  (-2 (push "~beta" version-list))
-                  (-3 (push "~alpha" version-list))
-                  (-4 (push "~snapshot" version-list))
-                  (t (error "Unknown version: %d" item)))
-                ;; no "." between prerelease name and number
-                (setq count 0))
-            (when (> count 0)
-              (push "." version-list))
-            (push (number-to-string item) version-list)
-            (cl-incf count))))
+        (if (cl-minusp item)
+            (progn
+              ;; This roughly matches the mapping in
+              ;; `version-regexp-alist'.
+              (cl-case item
+                (-1 (push "~rc" version-list))
+                (-2 (push "~beta" version-list))
+                (-3 (push "~alpha" version-list))
+                (-4 (push "~snapshot" version-list))
+                (t (error "Unknown version: %d" item)))
+              ;; no "." between prerelease name and number
+              (setq count 0))
+          (when (cl-plusp count)
+            (push "." version-list))
+          (push (number-to-string item) version-list)
+          (cl-incf count)))
       (string-join (nreverse version-list)))))
 
 (defun emacs-provided-package-versions ()
   "Return an alist of Debian package name to version mapping."
-  (let (emacs-provided-package-versions)
-    (mapc (lambda (package-name)
-            (let* ((debian-package-name (concat "elpa-"
-                                                (symbol-name package-name)))
-                   (debian-package-version (package-version-list-to-string
-                                            (package-builtin-package-version
-                                             package-name))))
-              (when (not (member debian-package-name package-skip-list))
-                (push `(,debian-package-name . ,debian-package-version)
-                      emacs-provided-package-versions))))
-          (package-versioned-builtin-packages))
-    (sort emacs-provided-package-versions)))
+  (sort
+   (mapcan
+    (lambda (package-name)
+      (let* ((debian-package-name (concat "elpa-"
+                                          (symbol-name package-name)))
+             (debian-package-version (package-version-list-to-string
+                                      (package-builtin-package-version
+                                       package-name))))
+
+        (and (not (member debian-package-name package-skip-list))
+             `((,debian-package-name . ,debian-package-version)))))
+    (package-versioned-builtin-packages))))
 
 (defun print-help ()
   "Print help info"
-  (message "Generate information for Emacs built-in packages.  Please use the following options:
+  (message "Generate information for Emacs built-in packages.
+
+Modes:
        --json          Generate a report in human readable JSON format
        --substvars     Generate substvars for Emacs build process
        --script-help   This help info
 
 (defun generate-builtin-package-info-json ()
   "Generate Emacs built-in-package info report in JSON format."
-  (princ (format "%s\n"
-                 (with-temp-buffer
-                   (insert (json-encode (emacs-provided-package-versions)))
-                   (json-pretty-print-buffer)
-                   (buffer-string)))))
+  (princ
+   (format "%s\n"
+           (with-temp-buffer
+             (insert (json-encode (emacs-provided-package-versions)))
+             (json-pretty-print-buffer)
+             (buffer-string)))))
 
 (defun generate-builtin-package-info-substvars ()
   "Generate Emacs built-in package info as substvars for emacs-common."
     (mapc (lambda (package-version)
             (let* ((name (car package-version))
                    (version (cdr package-version))
-                   (provides-entry-string (concat name
-                                                  (when version
-                                                    (format " (= %s)" version))
-                                                  ","))
-                   (replaces-entry-string (concat name
-                                                  (when version
-                                                    (format " (<< %s)" version))
-                                                  ",")))
-              (when (> count 0)
+                   (provides-entry-string
+                    (concat name
+                            (and version
+                                 (format " (= %s)" version))
+                            ","))
+                   (replaces-entry-string
+                    (concat name
+                            (and version
+                                 (format " (<< %s)" version))
+                            ",")))
+              (when (cl-plusp count)
                 (push " " provides-substvars-list)
                 (push " " replaces-substvars-list))
               (push provides-entry-string provides-substvars-list)
            (string-join (nreverse provides-substvars-list)))
           (debian-replaces-substvars-string
            (string-join (nreverse replaces-substvars-list))))
-      (princ (format "emacs:Provides=%s\n" debian-provides-substvars-string))
-      (princ (format "emacs:Breaks=%s\n" debian-replaces-substvars-string))
-      (princ (format "emacs:Replaces=%s\n" debian-replaces-substvars-string)))))
+      (princ
+       (format "emacs:Provides=%s\nemacs:Breaks=%s\nemacs:Replaces=%s\n"
+               debian-provides-substvars-string
+               debian-replaces-substvars-string
+               debian-replaces-substvars-string)))))
 
 (defun main ()
   "Main program entrance."
   (if (not argv)
       (print "Missing argument.  Should specify \"--report\" or \"--substvars\"."
              #'external-debugging-output)
-    (let ((option (elt argv 0)))
+    (let ((option (pop argv)))
       (pcase option
         ("--json" (generate-builtin-package-info-json))
         ("--substvars" (generate-builtin-package-info-substvars))